package mysql

import (
	"goconfcenter/models"

	"go.uber.org/zap"
)

type ResourceDao struct {
}

func ResourceDaoInstance() *ResourceDao {
	return &ResourceDao{}
}

func (c *ResourceDao) GetList() []*models.ResourcePoJo {
	data := make([]*models.ResourcePoJo, 0)
	err := db.Table("rms_resource").Find(&data).Error
	if err != nil {
		zap.L().Error("数据库查询出错", zap.Error(err))
	}
	return data
}
func (c *ResourceDao) Get(resourceId int64) *models.Resource {
	sql := "select *  from rms_resource where  id=? "
	resource := models.Resource{}
	result := db.Raw(sql, resourceId).First(&resource)
	if result.Error == nil {
		return &resource
	} else {
		zap.L().Error("查询出错", zap.Error(result.Error))
		return nil
	}
}

func (c *ResourceDao) Update(resource *models.Resource) bool {
	result := db.Save(&resource)
	if result.Error == nil {
		return true
	} else {
		zap.L().Error("数据更新失败", zap.Error(result.Error))
		return false
	}
}
func (c *ResourceDao) Insert(resource *models.Resource) bool {
	err := db.Create(&resource).Error
	if err == nil {
		return true
	} else {
		zap.L().Error("数据插入失败", zap.Error(err))
		return false
	}
}
func (c *ResourceDao) BathInsert(resources []*models.Resource) bool {
	err := db.Create(&resources).Error
	if err == nil {
		return true
	} else {
		zap.L().Error("数据批量插入失败", zap.Error(err))
		return false
	}
}
func (c *ResourceDao) BathDelete(ids *[]int64) bool {
	result := db.Delete(&models.Resource{}, ids)
	if result.Error == nil {
		return true
	} else {
		zap.L().Error("数据批量删除失败", zap.Error(result.Error))
		return false
	}
}
